#' 增加文本
#'
#' @param doc R1_start_docx功能生成的doc
#' @param text 普通文字或特殊文字
#' @param style 默认text是特殊文字,为"NULL"，可选"heading 1","heading 2","heading 3","centered"，"Normal"
#' @param font.family 默认字体为Times New Roman
#' @param font.size 默认字体大小为12
#' @param bold 默认字体为粗体，因为主要用作表头
#' @param ... ?officer::fp_text查看其余的特殊文本的参数，比如颜色color，斜体italic
#'
#' @return 增加了文本的doc
#' @export
#'
#' @examples
#'
#' \dontrun{
#'
#' # 默认特殊文本
#' library(Oneclick)
#' library(officer)
#'
#' table_all <-  R1_start_docx() %>%
#'   R2_add_text(text= "Table 1. Baseline characteristics" )%>%
#'   R3_add_table(Table1) %>%
#'   R2_add_text(text="Table 2. Outcomes")%>%
#'   R3_add_table(Table2) %>%
#'   R2_add_text(text="Table 3. Adverse events")%>%
#'   R3_add_table(Table3)
#'
#' # 输出到example.docx查看效果
#' print(table_all, target = "result/Table_all.docx" )
#'
#'
#'
#' # 删除example.docx
#' unlink("example.docx")
#'
#'
#'
#'
#'
#' # 增加普通文本
#'
#' doc <- R1_start_docx() %>%
#' R2_add_text(text="目录1",style="heading 1")%>%
#'   R2_add_text(text="第一个文本",style="Normal")%>%
#'   R2_add_text(text="中间文本",style="centered")
#'
#' print(doc, target = "example.docx" )
#'
#'
#' # 也可以自定义增加特殊文本1
#' # 参考书：https://ardata-fr.github.io/officeverse/formatting-properties.html#paragraph-formatting-properties
#' require(officer)
#'
#' bold_face <- shortcuts$fp_bold(font.size = 30) # 特殊文本的属性
#' bold_redface <- update(bold_face, color = "red") # 特殊文本的属性
#' fpar_ <- fpar(
#'  ftext("Hello ", prop = bold_face),  # 特殊文本
#'  ftext("World", prop = bold_redface), # 特殊文本
#'  ftext(", how are you?", prop = bold_face) # 特殊文本
#' )
#'
#'
#' doc <- doc %>%
#'  R2_add_text(text= fpar_)
#'
#' print(doc, target = "example.docx" )
#'
#' # 自定义增加特殊文本2
#'
#' rlogo <- file.path(R.home("doc"), "html", "logo.jpg") # 特殊文本（图片）路径
#' img_in_par <- fpar(
#'   external_img(src = rlogo, height = 1.06 / 2, width = 1.39 / 2),  # 特殊文本（图片）
#'   hyperlink_ftext(                                               # 带超链接的特殊文本
#'     href = "https://cran.r-project.org/index.html",
#'     text = "cran", prop = bold_redface
#'   ),
#'   fp_p = fp_par(text.align = "center")                        # 设置特殊文本（图片）属性
#'  )
#'
#' doc <- doc %>%
#'  R2_add_text(text= img_in_par )
#'
#' print(doc, target = "example.docx" )
#'
#'
#' }
#'
#'
#'
R2_add_text<-function(doc=doc,text="",style= NULL,font.family ="Times New Roman", font.size = 12,bold = TRUE,...){
  stopifnot(style %in% c("heading 1",
                         "heading 2",
                         "heading 3",
                         "Normal",
                         "centered"))
  require(officer)

  if( is.null( style ) &  !( class(text) %in% "fpar" ) ){
  properties1 <- fp_text(font.family =font.family, font.size = font.size ,bold =bold,...)
  text = fpar(ftext(text, properties1) )
  }


  doc<- add_text(doc=doc,text=text,style=style )
  return(doc)
}


add_text<-function(text=text,doc=doc,style=style){
  UseMethod("add_text")
}



add_text.character<-function(text=text,style=style,doc=doc){
  require(officer)
  doc <- doc %>%
    body_add_par(value=text,style=style)
  return(doc)
}

add_text.fpar<-function(text=text,style=style,doc=doc){
  require(officer)
  doc <- doc %>%
    body_add_fpar(value=text,style = NULL)
  return(doc)
}
